Software development continues to become more and more complex as computer performance increases and as greater functionality is demanded by users. Computer software programs are typically written by a computer programmer in a human-readable language, commonly referred to as source code. This source code may then later be compiled or interpreted into a set of machine-readable instructions that can be executed on a computer. Compilation of source code results in the generation of machine-readable object code that may be executed directly on a computer system. Interpreted source code is essentially compiled into machine-readable instructions on-the-fly while a computer program is executing.
One area in which source code is used extensively is in the presentation of audiovisual information to a user. For example, hypertext markup language (HTML) is used to describe the placement and formatting of text and multimedia objects in documents for presentation on a computer display. As another example, scene description languages such as the virtual reality modeling language (VRML) are used to describe interactive three dimensional scenes, or "worlds", for presentation on a computer display.
Both HTML and VRML are interpreted languages, and thus may be used on any computer system having a suitable interpreter. While each language has other uses, both HTML and VRML are particularly well-suited for transmitting information over the Internet. This is because each language can be used to generate a relatively compact program that can be used on a wide variety of computer systems. Computer software applications known as browsers are typically used to view the documents and scenes described by HTML and VRML source code.
Both HTML and VRML source code typically include one or more multimedia objects, or nodes, that are defined by object definitions. For HTML, the object definitions form an ordered arrangement of program statements. For VRML, the object definitions are organized into a hierarchical arrangement, where certain object definitions rely on the properties of child descendant object definitions in the hierarchical arrangement. The object definitions typically include one or more text statements in a HTML-specific or VRML-specific syntax.
For HTML, various text, image, sound, video and animation objects may be represented, as may embedded programs such as scripts or applets. For VRML, additional multimedia objects may be represented, including three dimensional objects, lighting objects, and event objects, among others.
Source code is typically generated by a computer programmer using a computer software application often referred to as an editor. Generally, most editors may be classified as text editors or graphical editors. Text editors enable software programmers to create source code in a text format. Graphical editors generally enable software programmers to create objects through an interactive graphical user interface (GUI) environment, and then generate source code based upon the properties of the objects.
Text editors generally have the benefit of enabling skilled programmers to exploit all of the features available in a given language, as all of the functionality of a language is directly accessible to the programmer. However, creating source code can be quite complex and time consuming, and often requires a detailed understanding of the language.
In addition, source code can be difficult to read and decipher. For example, source code written in some scene description languages such as VRML may rely on relatively large sets of data to represent coordinates, indexes, bitmap image data, sound file data, etc. Such sets can occupy several lines, or even several screens of text, particularly when complex objects are being defined. The sets of data can make it quite difficult to view and understand surrounding program statements in the source code.
Graphical editors generally attempt to hide much of the language details from the programmer by permitting objects to be created in a GUI environment, typically using graphic modeling tools similar those used in computer automated design (CAD), publishing, and illustration applications. In VRML, for example, objects may be created using graphic modeling tools, and scene or world editors may then be used to assemble the objects into scenes. Generally, the object and scene definitions are maintained in a proprietary format throughout the development process, with the source code generated as needed using an export function.
By hiding much of the detail and complexity from programmers, graphical editors often simplify and accelerate software development for many applications. However, an often necessary tradeoff to this ease of use is that some of the more advanced functions available in a language may not be accessible through a graphical editor. Consequently, each type of editor has drawbacks that often subject a programmer to certain tradeoffs when deciding upon which type of editor to use when developing source code.
In another area of software development, integrated development environment (IDE) development tools have been developed for some programming languages to facilitate software development in Windows-type environments. Many IDE tools enable graphical forms such as windows, dialog boxes, and the like to be created using GUI components. Scripted program code is associated with the components to define the operations that occur in response to user interaction with the components. Many IDE tools permit the simultaneous viewing of source code for a form and the graphical representation of the form. However, both representations are typically displayed in separate windows, making it difficult to view the overall program and to visually link together the text and graphic representations of the forms.
Consequently, a significant need continues to exist for a more powerful, efficient and intuitive manner of creating and editing source code files. Moreover, a particular need continues to exist for an improved manner of editing scene description language files such as VRML files and the like.